perm filename MALACH[F84,JMC] blob
sn#778632 filedate 1984-12-03 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 malach[f84,jmc] Concerning Yonatan Malachi's thesis
C00007 ENDMK
C⊗;
malach[f84,jmc] Concerning Yonatan Malachi's thesis
On the basis of the oral examination December 3, I would like
to see the following questions treated in thesis.
1. There should be a better example to illustrate those cases in
which writing in TABLOG is more convenient than writing in LISP.
I think such examples can be found that go beyond the fact that
multiple output functions don't exist in basic pure LISP. Common
Lisp and even the Maclisp within which TABLOG is written do allow
multipile output functions although their notation for them is
rather barbarous. Here is quicksort in the notation that I
currently use in my classes.
quicksort u ← if n u ∨ n d u then u
else [λv1 v2.quicksort v1 * [a u . quicksort v2][filter[d u,a u]]
where * is an infix standing for append.
filter[u,x] ← if n u then values[nil,nil]
else [λv1 v2.if x ≤ a u then values[a u . v1,v2] else values[v1,a u . v2]]
[filter[d u,x]].
2. The initial propaganda for TABLOG makes much of the fact that TABLOG
programs have both a logical and a procedural interpretation. Yet little
seems to be known about the relation between the two, although it is
clear that they correspond in the simple examples given. The thesis
should give some sufficient conditions for the correspondence.
Of course, this requires settling on some definite interpreting algorithm
or discussing the correspondence for several.
In the oral we discussed the pure Lisp subset of TABLOG. There
the results of Vuillemin and Cadiou showing that the call-by-name
interpreter gives the least fixed point of the functional equation and
the call-by-value interpreter gives the least fixed point of a "strictification"
of the functional equation.
In EKL today we introduce Lisp functions as definitions (not
yet in the most general case). This means we must prove the existence
of a least function satisfying the functional equation, and there are
axioms permitting this for a wide class of recursion schemes - soon
to be extended to arbitrary Lisp functions. This means that EKL takes
the responibility for the fact that an object satisfying the functional
equation exists. Can the like be done for TABLOG?
3. There should be a TABLOG interpreter written in TABLOG in the thesis
for the thesis readers' inspection. This requires a Lisp-like internal
notation for TABLOG programs, but perhaps the notation used by the
interpreter written in Maclisp will do.
4. TABLOG achieves its extended language over Lisp and probably over
Prolog at the cost of giving up a well-defined correspondence between
the function computed by the program and the equations defining the
program interpreted logically. The thesis should discuss whether some
such relaxation is required by the task of extending Lisp and Prolog
or whether this is just a mistake in the design of TABLOG.
5. Whether the other attempts to combine Lisp and Prolog have the same
deficiencies should be discussed.